package com.movitech.mobile.cz.base.sys.service;

import com.baomidou.mybatisplus.service.IService;
import com.movitech.mobile.cz.base.common.util.PageCode;
import com.movitech.mobile.cz.base.modules.controller.RestReturnResult;
import com.movitech.mobile.cz.base.sys.bizvo.RegionalCompanyRequestVO;
import com.movitech.mobile.cz.base.sys.bizvo.RegionalCompanySaveRequestVO;
import com.movitech.mobile.cz.base.sys.entity.SRegionalCompany;
import com.movitech.mobile.cz.base.sys.entity.ext.ExtSRegionalCompany;
import com.movitech.mobile.cz.base.sys.entity.ext.SRegionCompanyRequestVO;

import java.util.List;

/**
 * <p>
 * 地区公司 服务类
 * </p>
 *
 * @author Movitech Mobile
 * @since 2018-02-28
 */
public interface SRegionalCompanyService extends IService<SRegionalCompany> {

    /**
     * 根据地区公司ids查询地区公司名称
     *
     * @param regionalCompanyIdArr
     * @return
     */
    String getRegionalCompanyNames(String[] regionalCompanyIdArr);

    PageCode findRegionalCompanyList(RegionalCompanyRequestVO regionalCompanyRequestVO);

    /**
     * 根据供应商管理员id查询地区公司
     *
     * @param userId
     * @return
     */
    SRegionalCompany getRegionalCompanyByMngUser(String userId);

    public List<SRegionalCompany> getRegionalCompanyByCode(String code);

    /***
     * 获取集团信息
     * @return
     */
    public List<ExtSRegionalCompany> getGroupRegionalCompany();

    /**
     * 地区公司新增/更新
     *
     * @param regionalCompanySaveRequestVO
     * @return
     * @throws Exception
     */
    RestReturnResult<Object> saveOrUpdateRegionalCompany(RegionalCompanySaveRequestVO regionalCompanySaveRequestVO) throws Exception;

    boolean updateSRegionalCompany(SRegionalCompany sRegionalCompany);

    List<String> findAdminCIdsBySupplierId(String supplierId);

    SRegionalCompany selectByCode(String code);

    void batchAdd(List<SRegionCompanyRequestVO> sRegionCompanyRequestVOList);

    /**
     * 查询集团区域
     * @param
     */
    SRegionalCompany getRootRegionalCompany();
}
